import pygame
from pygame.sprite import Sprite


class Enemy(Sprite):
    """【类】敌机（单个）
    """

    def __init__(self, FP_settings, FP_screen):
        """【类方法】
        """
        super(Enemy, self).__init__()
        self.ATR_settings = FP_settings
        self.ATR_screen = FP_screen
        # 加载敌机图像，并设置其rect属性
        self.image = pygame.image.load(".\\images\\enemy.png")
        self.rect = self.image.get_rect()   # 由于使用了Group类，此处的命名不能自定义
        # 设置敌机的初始位置（屏幕左上角）
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        # 存储敌机的准确位置（浮点数）
        self.ATR_position_x = float(self.rect.x)

    def MET_blit_enemy(self) -> None:
        """【类方法】
        """
        self.ATR_screen.blit(self.image, self.rect)
        return None
    
    def check_edge(self) -> bool:
        """【类方法】如果外星人位于屏幕边缘，就返回True
        """
        screen_rect = self.ATR_screen.get_rect()
        if (self.rect.right >= screen_rect.right):
            return True
        elif (self.rect.left <= 0):
            return True

    def update(self) -> None:
        """【类方法】向右移动外星人
        """
        self.ATR_position_x += (self.ATR_settings.enemy_speed_factor * self.ATR_settings.enemy_direction_factor)
        self.rect.x = self.ATR_position_x
        return None
